The present invention relates generally to data transmission systems and, in particular, to a method controlling data flow between data terminal equipments.
In any form of digital system the loss or corruption of a single bit of information can of course be critical. It is thus essential when designing a communications facility for a distributed system to ensure that adequate precautions are taken to detect and, if necessary, correct for any possible loss or corruption of information. Data communication is thus concerned with a protocol with which the transfer rate of data is controlled. Another inportant component of data communication is flow control which is concerned with controlling the rate of transmission of elements, or packets, on a link between terminals of different operating speeds so that the receiver always has sufficient buffer storage resources to accept each element sent to it prior to precessing. Window mechanism is currently in use to permit the source side of a link to send a number of packets before receiving an acknowledgement, or "receive ready (RR)" packet signaling correct receipt of each of the transmitted packets. Because of the high throughput capability of the mechanism, it is used in long distance communications, particularly satellite communications. If a packet is not received correctly received either due to corruption of bits or a complete loss of a packet, a "reject" (REJ) is returned to the transmitter to request retransmission of data. If the receive buffer is overflowed, a "receive not ready (RNR)" packet is returned to the transmitter to halt the transmission of data packets. However, one disadvantage of the current window mechanism is that due to the propagation delay between transmitting a packet and receiving the associated acknowledgment the transmitter receives an acknowledgment after transmitting a number of packets following the corruption of a packet. The receiver discards such following packets and requests the transmitter to retransmit copies of the packets including the corrupted packet. Thus, an error event significantly lowers the throughout of the link. If a satellite link is used, the number of data packets to be discarded in the event of an error is substantial.